Visualizing location-based datasets using &#34;tag maps&#34;

ABSTRACT

The visualization of datasets by associating text (keywords) with location and optionally with time is disclosed. This visualization may help the user better understand and analyze the contents of the dataset. The visualization takes as input a keyword and related parameters such as location, importance/relevance factors, time, visualization level, and keyword category, and displays the selected keywords on a map, at their associated location, with the size or other characteristic of the keyword varying according to its relevance.

BACKGROUND OF THE INVENTION

A dataset is a collection of information. Some datasets associate thecollected information with location information, and may be referred toherein as location-based datasets. One example of a location-baseddataset is a collection of digital photographs publicly available at aweb site such as flickr.com, which is a public photo sharing site. Atsuch web sites, persons who submit photos can add short contextuallabels or “tags” to their photos such as the place at which the photowas taken, in addition to any device-generated context information.These labels help others search for and locate the photo. These tags areoften related to the photo in some way, such as by subject, time,location (geo-reference information), etc. Another example of a datasetis a collection of words used in Short Message Service (SMS) messages(i.e. cellular telephone text messages), perhaps those sent or receivedfrom a certain geographic area. Other examples of datasets includerestaurants searched by users on Yahoo! Local, search results or searchterms, news reports and other location-annotated information. Ingeneral, although different datasets may include diverse types ofinformation, each item in any dataset sharing some commonality withother elements or information in the dataset.

Mobile devices, including, but not limited to, mobile phones and digitalcameras, represent just one example of devices capable of generatinglocation-dependent datasets. Such mobile devices are capable ofdetermining or capturing information capable of at least partly definingthe context of the environment in which they are used. For example, inaddition to temporal information such as time and date, locationservices may be used to supply spatial information about the device suchas latitude and longitude from a Global Positioning System (GPS) device.Such spatial information may be associated with messages, digitalphotographs or other content sent, received or otherwise captured by amobile device, thereby providing spatial context for the content.

Some context information, typically time and date information, may beautomatically generated by a device (referred to generally asdevice-generated data) and associated with the content. For example, amobile phone may automatically generate time and date metadataassociated with the capture of a digital photograph or the transmissionof a Short Message Service (SMS) text message. Additionally, subjectivesemantic information may be entered by a user at the time of capture (orlater) and associated with the content.

While location-based datasets have the potential to provide usefulinformation, often the raw information in a dataset is often toovoluminous, complex, disorganized and generally hard to understand andgrasp as a whole. Therefore, it would be generally beneficial to deriveonly the information of most interest to the user from a dataset, byidentifying or deriving keywords from the dataset selected in accordancewith some metric or relevance parameter representing, for example, themost popular or frequently occurring tags associated with theinformation in the dataset.

U.S. application Ser. No. 11/437,344, filed on May 19, 2006 and entitled“Summarization of Media Object Collections,” and U.S. application Ser.No. ______, filed on Nov. 6, 2006 and entitled “Context Server forAssociating Information Based on Context,” the contents of which areincorporated herein by reference, in some embodiments describe analgorithm for identifying or deriving keywords from a dataset inaccordance with their popularity or some other metric. As described inthese applications, a context server may receive stored datasetscontaining one or more of context information, media objects, anduser-generated subjective characterization information associated withthe context information from one or more users. The context informationin these datasets may include metadata that relates to time, date,location, ambient conditions, aperture, shutter speed, and othersettings (for digital photos), biometrics (e.g., relating to the user ofthe device), device/user identifications, geographical reference data(e.g., from a GPS location device, cell identification, or otherlocation technology), or combinations thereof. The user-generatedsubjective characterization information may include one or more tags fora media object, such as a title, a description of the image,annotations, geographical location and comments.

The context server associates service information with theuser-generated subjective characterization information based on thecontext information. The service information may include, but is notlimited to, keywords identifying popular or heavily searched points ofinterest, locations (e.g. streets, towns, cities, and the like),restaurants, people, advertisements, popular words in context-basedmessages, sponsored search advertisements, or combinations thereof.Along with these keywords or labels, the service information may includeother values associated with each label and obtained from the contextinformation and the user-generated subjective characterizationinformation, such as a latitude, longitude, a time or date or range forwhich the information is valid, and one or more associated values suchas a value indicating the popularity of the label.

However, even with service information (e.g. popular keywords) derivedfrom the dataset, it may still be difficult for a user to geographicallyrelate with those keywords and place them in context with his/hersurroundings. In other words, consistent with the phrase “A picture isworth a thousand words,” users may derive a certain level of benefit andcomfort from being able to compartmentalize the keywords by visuallyseeing a representation of a location associated with these keywords andhow the keywords physically relate to the world, thereby providing ageographic context to aid in understanding them.

Therefore, it would be advantageous to visualize keywords derived fromdatasets, including “arbitrary” keywords normally thought of as beingnot intrinsically linked to any particular geographical feature (e.g.movies, people, words in SMS messages), by enabling a user to see thosekeywords on a map with some further indication of the extent of theirpopularity, relevance or relationship to some metric.

Conventional systems for relating keywords to geographic locationsinclude conventional maps, which show larger cities in larger text. FIG.1 is an illustration of an exemplary conventional map of San Francisco,Calif. and surrounding areas, showing a few landmarks and cities whosetext varies according to their size (e.g. Oakland is in a larger fontthan Alameda). Another conventional system is Gutenkarte (seehttp://www.gutenkarte.org/), which uses a map to visualize geographiclocations mentioned in books, with the geographic location names beingshown in various sizes according to the number of times they werementioned. Stanley Milgram introduced the idea of displaying landmarkssized in accordance with their popularity in 1976. However, theseconventional systems only display location-dependent objects (e.g.cities and/or landmarks) tied to a particular geographic region, andnone or these systems display keywords not intrinsically linked to anyparticular geographical feature (e.g. movies, people, words in SMSmessages).

BRIEF SUMMARY OF THE INVENTION

Embodiments of the invention visualize datasets by associating text(keywords) with location and optionally with time. This visualizationmay help the user better understand and analyze the contents of thedataset. The visualization takes as input a keyword and relatedparameters such as location, importance/relevance factors, time,visualization level, and keyword category, and displays (visualizes) theselected keywords on a map, at their associated location, with the sizeor other characteristic of the keyword varying according to itsrelevance to some metric (e.g. popularity).

To visualize the keywords on a map, visualization data must have beenreceived or made available, and map data must have been received or madeavailable. Visualization data may be generated by a context serverlocated at the server side, or by a computer located at the client side.The visualization data according to embodiments of the invention maycontain keywords tied to a particular geographic location (e.g. citiesand landmarks) and associated relevance parameters, but alsogeographically independent keywords (e.g. people, movie titles, currentevents, search terms, products, and the like) that are not intrinsicallylinked to any particular geographical feature but nonetheless have beenassociated with a particular location, along with their location andrelevance parameters. These keywords may be referred to aslocation-based keywords.

The visualization data may be pre-computed all at once, in advance ofany selection of a map area, or may be computed in an ad hoc manner “onthe fly,” only when a particular map area is specified. When thevisualization data is pre-computed, visualization data is generated fromall keywords in the dataset without regard to the location associatedwith the keywords. When the visualization data is computed in an ad hocmanner, visualization data is generated from only those keywordsassociated with a location within the selected map area.

Map data can also be rendered both on the server or on the client. Forexample, when a user selects a certain map area, in some embodiments rawmap data is retrieved from a map server on the server side andtransmitted to the client side, where the client-side computer utilizesthe raw map data and a rendering program to display the selected mapdata on the client-side computer. Alternatively, a rendering program maybe executed at the server side to operate on the raw map data andgenerate rendering data that need only be transmitted to the client sidefor display on the client-side computer. In other embodiments, map datacan be generated and maps may be rendered from any other source.

Before the keywords can be visualized (i.e. before they can appear on amap), the visualization data must be applied to the keywords inaccordance with a visualization scheme that applies appearanceinformation to keywords in accordance to keyword relevance. Whenvisualization data is applied to a keyword, the result may be referredto herein as presentation data. For example, the presentation data for“flagsofourfathers” may comprise the text “flagsofourfathers” along withcode for rendering the text in 12-point font, specification of colorsand other visual elements, as well as specification regarding thevisual/map location in which to render the keyword.

The visualization scheme for the selected location-based keywords mayalso be established. In some embodiments, all presentation data willfollow the same visualization scheme. Any number of visualizationschemes may be employed, including, but not limited to, size (e.g. withmore popular or more recent keywords being larger), color (e.g. withmore popular or more recent keywords being brighter colors (red for themost popular or more recent keywords)), shadings (e.g. with more popularor more recent keywords being darker), three-dimensional (e.g. with morepopular or more recent keywords being taller), blinking or animation(e.g. with more popular or more recent keywords blinking faster, fadingin and out faster, moving or wiggling faster, etc.), and the like. Inaddition to these visualization schemes, the keywords themselves may besupplemented by or replaced with symbols, icons, links to web sites orweb pages, graphics, thumbnail pictures, and the like, and these itemsmay also vary in size, color, or shading, and may blink, fade in andout, pop-up, and the like. The visualization algorithm may have a fixedvisualization scheme for all keywords or may have different schemes fordifferent keyword categories, or alternatively the visualization schemesmay be user-selectable.

The visualization scheme may then be applied to the location-basedkeywords to be converted to presentation data. For example, if “movietitles” appearing in text messages are to be converted to presentationdata according to where the text message was sent, and a font sizevisualization scheme is to be employed using three font sizes, then thethree most relevant (e.g. popular) keywords having a keyword category of“movie title” may be assigned to the appropriate font sizes. In otherembodiments, some presentation data may be assigned the same appearanceinformation (e.g. assigned the same font size) to indicate similarrelevance characteristics. One skilled in the art will recognize that asimilar assignment of visualization scheme to keywords can be applied toother visualization schemes and keyword categories.

The presentation data may be pre-computed all at once, in advance of anyselection of a map area, or may be computed in an ad hoc manner “on thefly,” only when a particular map area is specified. When thepresentation data is pre-computed, presentation data is generated fromall keywords without regard to the location associated with thekeywords. However, only the presentation data that is located within themap area selected by the user will be visualized (appear on the map).When the presentation data is computed in an ad hoc manner, presentationdata is generated from only those keywords associated with a locationwithin the selected map area. Presentation data may be generated by aserver located at the server side, or by a computer located at theclient side. In still other embodiments, the presentation computationmode is user-selectable.

In some embodiments of the invention, the presentation data can bedependent on zoom level, screen-viewable area, type of screen, screenresolution and the like, and the decisions on how to further modify thepresentation data may be made either in the client or the server. Forexample, if the presentation data includes keywords sized in fivedifferent fonts according to some measure of keyword relevance, but aserver or processor at either the client or server determines or is madeaware that either the zoom level is very high (i.e. “zoomed out”), thescreen size is small, and/or the screen resolution is low, the smallestfont sizes may not be readable. Accordingly, the server or processor mayfurther modify the presentation data to increase all font sizes,eliminate the presentation data with font sizes smaller than a certainlevel, or take other measures to ensure that the presentation data thatis ultimately visualized is readable. In another example, if thepresentation data includes keywords in five different colors accordingto some measure of keyword relevance, but a server or processor ateither the client or server determines or is made aware that the displaydevice is monochrome (e.g. black and white) or limited in colorresolution, the color distinctions may not be visible when visualized.Accordingly, the server or processor may further modify the presentationdata to replace color distinctions with some other visual distinction(e.g. font size distinctions) or take other measures to ensure that thepresentation data that is ultimately visualized is properlydistinguishable. In yet another example, if the presentation dataincludes keywords in one or more fonts according to some measure ofkeyword relevance, but a server or processor at either the client orserver determines or is made aware that the screen resolution isinsufficient to make the different fonts distinguishable or that one ormore of the fonts are not supported, the font distinctions may not bevisible when visualized. Accordingly, the server or processor mayfurther modify the presentation data to replace font distinctions withsome other visual distinction (e.g. color distinctions) or take othermeasures to ensure that the presentation data that is ultimatelyvisualized is properly distinguishable. Those skilled in the art willrecognize that any number of presentation data modifications may be madeto ensure that the visualized keywords are properly distinguishable.

If the presentation data is pre-computed, the location-based keywords tobe converted to presentation data may be established. In someembodiments, all keywords are modified and converted into presentationdata. In these embodiments, keywords to be visualized may already havebeen limited to a particular category (e.g. cities), or may fall into anumber of different selected categories (e.g. cities, landmarks, movies,people and the like). In other embodiments, the keywords to be convertedto presentation data are category-dependent. If the keywords to beconverted are category-dependent, keywords may have a “category”parameter (e.g. cities, landmarks, movies, people, and the like, and theuser may select one or more of these categories of keywords to beconverted to presentation data.

The map area to be displayed may be established. In some embodiments,the map area is fixed, but other embodiments, the map area isuser-selectable.

Whether the visualization is to be time-dependent may also beestablished. In some embodiments, there is no time-dependency. If notime-dependency is selected, all location-based keywords to bevisualized will be visualized. In other embodiments, visualization istime-dependent, and only those keywords having a time/date stamp (aparameter associated with the keyword) corresponding to a particulartime, date or range will be visualized. In still other embodiments, thisis user-selectable. In time-dependent visualization, either thevisualization algorithm may automatically determine a time, date orrange (in some embodiments selecting the range based on the keywords tobe visualized having the earliest and latest time/date stamps), or theuser may select a time, date or range, or whether the visualization isto be animated.

The presentation data may then be rendered (visualized) by a serverlocated at the server side, or by a computer located at the client side,or by any device capable of generating rendering data.

In some embodiments, the location-based keywords are visualized byapplying the presentation data to the map data, and the modified mapdata may be sent to the user for rendering on the user's web browser. Intime-independent visualization, only a single map is rendered. However,in time-dependent visualization, a fixed or user-selectable time,time/date, time range or date range may be used to limit the keywords tobe displayed. Alternatively, if a particular time or date range isselected, a sequence of modified map data may be transmitted forrendering, each set of modified map data in the sequence representing adifferent time or date in the selected time or date range. As theseviews are rendered, the keywords will appear and disappear in accordancewith their associated time/date stamps. The views may be renderedautomatically, giving the user a time-dependent animation, or the usermay step through the different views one at a time. In otherembodiments, the location-based keywords and the map data are sentseparately to the user's web browser, where rendering logic combines theinformation before rendering it.

Note that if the user “pans” to a different location, effectivelyselecting a different map area, the visualization process andtransmission process may be repeated in preparation for mapre-rendering. When this occurs, some previously hidden keywords mayappear, and some previously displayed keywords may disappear.

Additionally, if the user zooms in and out, effectively selecting adifferent map area, the visualization process and transmission processwill be repeated when the map is re-rendered. When this occurs, in someembodiments the displayed keywords may change according to avisualization level parameter associated with the keywords thatidentifies a particular zoom or geographic level (e.g. city, state,etc). Alternatively or additionally, the keywords may be filteredaccording to some other parameter such as frequency of occurrence, sothat only a subset of the keywords is shown. For example, if a user isviewing a map of San Francisco with a visualization level of “city,” allrestaurants with 10 or more occurrences or some threshold value mayappear. However, at a visualization level of “state,” only restaurantswith 50 or more occurrences may appear, or only the five restaurantswith the most occurrences may appear.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of an exemplary conventional map of SanFrancisco, Calif. and surrounding areas, showing a few landmarks andcities whose text varies according to its size.

FIG. 2 is an illustration of an exemplary map showing popular landmarksand attractions according to embodiments of the invention.

FIG. 3 is an illustration of an exemplary map showing the most popularmovie titles appearing in SMS messages originating from a particularlocation according to embodiments of the invention.

FIG. 4 illustrates an exemplary system level diagram for implementingembodiments of the invention involving an individual user.

FIG. 5 illustrates an exemplary system level diagram for implementingembodiments of the invention in which the user is a company ordeveloper.

FIG. 6 is a flow diagram illustrating the main steps of thevisualization algorithm according to embodiments of the invention.

FIG. 7 illustrates an exemplary computer system that may be employed toimplement embodiments of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the invention visualize datasets by associating text(keywords) with location and optionally with time. This visualizationmay help the user to better understand and analyze the contents of thedataset. The visualization takes as input a keyword and relatedparameters such as location, importance/relevance factors, time,visualization level, and keyword category, and displays (visualizes) theselected keywords on a map, at their associated location, with the sizeor other characteristic of the keyword shown according to its relevanceto some metric (e.g. popularity).

FIG. 2 is an illustration of an exemplary map showing popular landmarksand attractions in a dataset according to embodiments of the invention.Note that FIG. 2 shows landmarks (e.g. Big Ben) and additionally acompany (the British Broadcasting Corporation, or BBC) sized accordingto their popularity.

FIG. 3 is an illustration of an exemplary map showing the most popularmovie titles appearing in a dataset of SMS messages originating from SanFrancisco, Calif. according to embodiments of the invention. In FIG. 3,the keywords are visualized at the specific location within SanFrancisco at which the messages originated. Note that FIG. 3 shows themovie titles “Flags of Our Fathers,” “The Prestige,” and “MarieAntoinette” sized according to their popularity, these keywords notnormally being intrinsically linked to a particular geographic locationor feature. In other embodiments, keywords may be visualized inaccordance with relevance parameters not related to the number of timesthis keyword appeared in the dataset. For example, movie titles may bevisualized in accordance with a relevance parameter of “box officegross,” or restaurants may be visualized in accordance with a relevanceparameter of “restaurant rating.”

FIG. 4 illustrates an exemplary system level diagram for implementingembodiments of the invention involving an individual user. A user orclient 400 at a personal computer 402 and executing a web browser 404and optionally a client-side visualization application may access a website over the Internet or other network 406 such as flickr.com beinghosted on a main server 408. In some embodiments, the main server 408may be executing a visualization algorithm 420 (discussed in furtherdetail below) to perform visualization at the web site. In alternativeembodiments, the main server 408 may be in communication with a secondserver 410 over a private network or the Internet, wherein thevisualization algorithm 420 is performed at the second server and theresults are sent back to the main server.

A storage device or memory 412 may store one or more datasets such as adataset of photos, SMS messages, search terms, and the like. A contextserver 414 may operate on one or more datasets 422 to generatevisualization data 416 comprised of keywords or labels and other valuesassociated with each label such as a latitude, longitude, a time or timerange for which the information is valid, and one or more associatedrelevance values such as a value indicating the popularity of the label.Although FIG. 4 shows the context server as a different entity from themain and optional second servers, these servers may in fact be the sameserver, separate servers, or any combination of servers.

In some embodiments, the user may use a client-side application torequest that certain visualization data be visualized using a particularvisualization scheme, and may also request a particular map area. Themain server 408 or second server 410 then performs the visualizationalgorithm on the visualization data 416 and map data from a map server418. The map server 418 produces map information in accordance with ageographic request from the user 400, and although the map server isshown in FIG. 4 as a separate server, it may be the same server as anyone of the main server 408, second server 410, or context server 414.The main server 408 or second server 410 then produces renderinginformation and transmits it to the personal computer 402 so that can berendered by the web browser 404.

In other embodiments, the user may use the client-side application torequest a particular map area from the map server 418, which then sendsmap data back to the user's computer 402. The user may also requestvisualization data to be visualized in the selected map area in anad-hoc manner. The main server 408 or second server 410 may then respondby generating presentation data from the visualization data in theselected map area in accordance with a visualization scheme that mayalso have been requested by the user. The resulting presentation datamay then be transmitted back to the user's computer 402, where it may becombined with the map data and rendered at the web browser 404.

In still further embodiments, the user may use the client-sideapplication to request visualization data to be visualized, and the mainserver 408 or second server 410 may then respond by generatingpresentation data from the visualization data in accordance with avisualization scheme that may also have been requested by the user,without any map area restriction. The resulting presentation data maythen be transmitted back to the user's computer 402, where it iscombined with the map data and rendered at the web browser 404.

In other embodiments, the main server 408 or second server 410 mayperform pre-processing and generate presentation data from thevisualization data in accordance with a visualization scheme, withoutany map area restriction. All presentation data may then be downloadedby a user to the user's computer 402, so that when the user selects aparticular map area, the presentation data in the selected map area willbe rendered along with the map.

FIG. 5 illustrates an exemplary system level diagram for implementingembodiments of the invention in which the user/client 500 is a companyor developer. In such embodiments, the user 500 may be at a server orweb site that allows the user to specify both a dataset and a map area.

In the commercial or developer embodiments shown in FIG. 5, the user orclient 500 may be an employee at a company having its own dataset instorage or memory 524. The company may send its dataset to the contextserver 514 and a map area of interest to the map server 518 over theInternet 506 (perhaps through the main server 508) so that keywords canbe generated from the dataset, presentation data can be generated, andthe presentation data can be visualized on a map using the main server508 or second server 510.

The visualization algorithm may be implemented by visualization andrendering logic within the main or second server of FIG. 4 or 5. Thevisualization and rendering logic may be a processor programmed forexecuting the visualization algorithm, or a state machine or otherdedicated logic for executing the visualization algorithm. Thevisualization logic applies a visualization scheme to location-basedkeywords that generates visualization information for each keyword inaccordance with a popularity parameter associated with the keyword. Therendering logic integrates the visualization information for eachlocation-based keyword with map data in accordance with a locationparameter associated with the keyword to enable the one or more keywordsto be rendered along with the map data in accordance with their locationand popularity. In other embodiments, the rendering logic may be part ofthe client-side application.

FIG. 6 is a flow diagram illustrating the main steps of thevisualization algorithm according to embodiments of the invention. Oneskilled in the art will recognize that the order of some of these stepsmay be changed without affecting the final visualization.

To visualize the keywords on a map, visualization data must have beenreceived or made available, and map data must have been received or madeavailable from the map server (see step S600) or some other source.Visualization data may be generated by a context server located at theserver side, or by a computer located at the client side. Although thevisualization data may have been received from the previously describedcontext server, the present invention is applicable to any dataset,however it may have been compiled. The visualization data according toembodiments of the invention may contain keywords tied to a particulargeographic location (e.g. cities and landmarks) and associated relevanceparameters, but also geographically independent keywords (e.g. people,movie titles, current events, search terms, products, and the like) thatare not intrinsically linked to any particular geographical feature butnonetheless have been associated with a particular location, along withtheir location and relevance parameters. These keywords may be referredto as location-based keywords.

The visualization data may be pre-computed all at once, in advance ofany selection of a map area, or may be computed in an ad hoc manner “onthe fly,” only when a particular map area is specified. When thevisualization data is pre-computed, visualization data is generated fromall keywords in the dataset without regard to the location associatedwith the keywords. When the visualization data is computed in an ad hocmanner, visualization data is generated from only those keywordsassociated with a location within the selected map area.

Map data can also be rendered both on the server or on the client. Forexample, when a user selects a certain map area, in some embodiments rawmap data is retrieved from a map server on the server side andtransmitted to the client side, where the client-side computer utilizesthe raw map data and a rendering program to display the selected mapdata on the client-side computer. Alternatively, a rendering program maybe executed at the server side to operate on the raw map data andgenerate rendering data that need only be transmitted to the client sidefor display on the client-side computer. In other embodiments, map datacan be generated and maps may be rendered from any other source.

Before the keywords can be visualized (i.e. before they can appear on amap), the visualization data must be applied to the keywords inaccordance with a visualization scheme (i.e. the application ofappearance information to keywords in accordance to keyword relevance).When visualization data is applied to a keyword, the result may bereferred to herein as presentation data. For example, the presentationdata for “flagsofourfathers” may comprise the text “flagsofourfathers”along with code for rendering the text in 12-point font, specificationof colors and other visual elements, as well as specification regardingthe visual/map location in which to render the keyword.

The presentation data may be pre-computed all at once, in advance of anyselection of a map area, or may be computed in an ad hoc manner “on thefly,” only when a particular map area is specified. When thepresentation data is pre-computed, presentation data is generated fromall keywords without regard to the location associated with thekeywords. However, only the presentation data that is located within themap area selected by the user will be visualized (appear on the map).When the presentation data is computed in an ad hoc manner, presentationdata is generated from only those keywords associated with a locationwithin the selected map area. Presentation data may be generated by aserver located at the server side, or by a computer located at theclient side. In still other embodiments, the presentation computationmode is user-selectable.

In step S602, a determination may be made as to whether the generationof presentation data is to be pre-computed all at once, in advance ofany selection of a map area, or to be computed in an ad hoc manner “onthe fly,” only when a particular map area is specified (see S602-A).When the visualization data is pre-computed, visualization data isgenerated from all keywords in the dataset without regard to thelocation associated with the keywords. When the visualization data iscomputed in an ad hoc manner, visualization data is generated from onlythose keywords associated with a location within the selected map area(see S602-B). In location-dependent generation of presentation data, theuser may select a map area first, and only those keywords located withinthe selected map area will be converted to presentation data. In stillother embodiments, the visualization mode is user-selectable (seeS602-C).

If the generation of presentation data is flat, step S604 determines thelocation-based keywords to be subjected to pre-computed generation ofpresentation data. In some embodiments, all location-based keywords arepre-computed and converted into presentation data (see S604-A). Thelocation-based keywords to be visualized may already have been limitedto a particular category (e.g. cities), or may fall into a number ofdifferent categories (e.g. cities, landmarks, movies, people and thelike.) In other embodiments, the generation of presentation data iscategory-dependent (see S604-B). If the generation of presentation datais category-dependent, all keywords may have a “category” parameter(e.g. cities, landmarks, movies, people, and the like), and the user mayselect one or more of these categories of keywords to be converted topresentation data.

Step S606 determines how the selected location-based keywords will bevisualized. In some embodiments, all presentation data will follow thesame visualization scheme. Any number of visualization schemes may beemployed, including, but not limited to, varying the appearance of akeyword utilizing an appearance characteristic such as size (e.g. withmore popular or more recent keywords being larger), color (e.g. withmore popular or more recent keywords being brighter colors (red for themost popular or more recent keywords)), shadings (e.g. with more popularor more recent keywords being darker), three-dimensional (e.g. with morepopular or more recent keywords being taller), blinking or animation(e.g. with more popular or more recent keywords blinking faster, fadingin and out faster, moving or wiggling faster, etc.), and the like. Inaddition to these visualization schemes, the keywords themselves may besupplemented by or replaced with appearance elements such as symbols,icons, links to web sites or web pages, graphics, thumbnail pictures,and the like, and these items may also vary in size, color, or shading,and may blink, fade in and out, pop-up, and the like. The visualizationalgorithm may have a fixed visualization scheme for all keywords or mayhave different schemes for different keyword categories, oralternatively the visualization schemes may be user-selectable.

Step S608 applies the visualization scheme to the location-basedkeywords to be converted to presentation data. For example, if “movietitles” appearing in text messages are to be converted according towhere the text message was sent, and a font size visualization scheme isto be employed using three font sizes, then the three most relevant(e.g. popular) keywords (e.g. “Flags of Our Fathers,” “The Prestige,”and “Marie Antoinette”) having a keyword category of “movie title” wouldbe assigned to the appropriate font sizes. In other embodiments, somepresentation data may be assigned the same appearance information (e.g.assigned the same font size) to indicate similar relevancecharacteristics. One skilled in the art will recognize that a similarassignment of visualization scheme to keywords can be applied to othervisualization schemes and keyword categories.

In some embodiments of the invention, the presentation data can bedependent on zoom level, screen-viewable area, type of screen, screenresolution and the like, and the decisions on how to further modify thepresentation data may be made either in the client or the server. Forexample, if the presentation data includes keywords sized in fivedifferent fonts according to some measure of keyword relevance, but aserver or processor at either the client or server determines or is madeaware that either the zoom level is very high (i.e. “zoomed out”), thescreen size is small, and/or the screen resolution is low, the smallestfont sizes may not be readable. Accordingly, the server or processor mayfurther modify the presentation data to increase all font sizes,eliminate the presentation data with font sizes smaller than a certainlevel, or take other measures to ensure that the presentation data thatis ultimately visualized is readable. In another example, if thepresentation data includes keywords in five different colors accordingto some measure of keyword relevance, but a server or processor ateither the client or server determines or is made aware that the displaydevice is monochrome (e.g. black and white) or limited in colorresolution, the color distinctions may not be visible when visualized.Accordingly, the server or processor may further modify the presentationdata to replace color distinctions with some other visual distinction(e.g. font size distinctions) or take other measures to ensure that thepresentation data that is ultimately visualized is properlydistinguishable. In yet another example, if the presentation dataincludes keywords in one or more fonts according to some measure ofkeyword relevance, but a server or processor at either the client orserver determines or is made aware that the screen resolution isinsufficient to make the different fonts distinguishable or that one ormore of the fonts are not supported, the font distinctions may not bevisible when visualized. Accordingly, the server or processor mayfurther modify the presentation data to replace font distinctions withsome other visual distinction (e.g. color distinctions) or take othermeasures to ensure that the presentation data that is ultimatelyvisualized is properly distinguishable. Those skilled in the art willrecognize that any number of presentation data modifications may be madeto ensure that the visualized keywords are properly distinguishable.

Step S610 determines the map area to be displayed. In some embodiments,the map area is fixed (see S610-A), but other embodiments, the map areais user-selectable (see S610-B).

Step S612 determines if the visualization is to be time-dependent. Insome embodiments, there is no time-dependency (see S612-A). If notime-dependency is selected, all location-based keywords to bevisualized will be visualized. In other embodiments, visualization istime-dependent (see S612-B), and only those keywords having a time/datestamp (a temporal parameter associated with the keyword) correspondingto a particular time, date or range will be visualized. In still otherembodiments, this is user-selectable (see S612-C). In time-dependentvisualization, either the visualization algorithm may automaticallydetermine a time, date or range (in some embodiments selecting the rangebased on the keywords to be visualized having the earliest and latesttime/date stamps) and whether the visualization is to be animated, orthe user may select a time, date or range and whether the visualizationis to be animated. Also, the changes in time may also mean the samekeywords will be shown but with other properties (e.g. change color,size, and the like).

The presentation data may then be rendered (visualized) by a serverlocated at the server side, or by a computer located at the client side.

Step S614 visualizes the location-based keywords by applying thekeywords according to the visualization scheme to the map data, and stepS616 sends this modified map data to the user for rendering on theuser's web browser. In other embodiments, map data and presentation dataare separately sent to the user's web browser for combining andrendering. In time-independent visualization, only a single map isrendered. However, in time-dependent visualization, a fixed oruser-selectable time, time/date, time range or date range may be used tolimit the keywords to be displayed. For example, if a particular time,time/date, time range or date range is selected (e.g. “5 p.m.”, “5 p.m.on Oct. 24, 2006,” “5-7 p.m.”, or “Oct. 26, 2006 through Oct. 28,2006”), all keywords having temporal keyword parameters falling withinthat range will be displayed on a single map. In some embodiments, asthe time changes, the same presentation data may be visualized withchanges to color, size or other presentation characteristics.Alternatively, if a particular time or date range is selected, asequence of modified map data may be transmitted for rendering, each setof modified map data in the sequence representing a different time ordate in the selected time or date range. As these views are rendered,the keywords will appear and disappear in accordance with theirassociated time/date stamps. The views may be rendered automatically,giving the user a time-dependent animation, or the user may step throughthe different views one at a time.

Note that if the user “pans” to a different location, effectivelyselecting a different map area, the visualization process (step S614)and transmission process (step S616) will be repeated in preparation formap is re-rendering. When this occurs, some previously hidden keywordsmay appear, and some previously displayed keywords may disappear.

Additionally, if the user zooms in and out, effectively selecting adifferent map area, the visualization process (step S614) andtransmission process (step S616) will be repeated when the map isre-rendered. When this occurs, in some embodiments the displayedkeywords may change according to a visualization level parameterassociated with the keywords. For example, if a user is viewing a map ofSan Francisco, a Golden Gate Bridge (GGB) keyword may appear, as willother keywords having a visualization level parameter of “city.”However, as the user zooms out to view a map of all of California, thelabel for GGB may disappear, and only a label for San Francisco mayappear, as will other keywords having a visualization level parameter of“state.” In other words, a visualization level parameter may be attachedto each keyword that identifies a particular zoom or geographic level(e.g. city, state, etc). Alternatively or additionally, the keywords maybe filtered according to some other parameter such as frequency ofoccurrence, so that only a subset of the keywords is shown. For example,if a user is viewing a map of San Francisco with a visualization levelof “city,” all restaurants with 10 or more occurrences or some thresholdvalue may appear. However, at a visualization level of “state,” onlyrestaurants with 50 or more occurrences may appear, or only the fiverestaurants with the most occurrences may appear.

If the visualization is location-dependent, the user may select a maparea first. Step S618 determines the map area to be displayed. This stepis similar to step S610. Step S620 determines the keywords to beconverted to presentation data. This step is similar to step S604,except that only those location-based keywords located within thegeographic range of the selected map area will be converted topresentation data. Step S622 determines how the selected keywords willbe visualized. This step is similar to step S606. Step S624 applies thevisualization scheme to the keywords to be visualized. This step issimilar to step S608. Step S612 determines if the visualization is to betime-dependent. Step S614 visualizes the keywords by applying thekeywords according to the visualization scheme to the map data, and stepS616 sends this modified map data to the user for rendering on theuser's web browser.

While embodiments of the invention have been described in terms ofparticular embodiments and illustrative figures, those of ordinary skillin the art will recognize that embodiments of the invention are notlimited to the embodiments or figures described. Although embodiments ofthe invention are described, in some instances, using client/serverterminology, those skilled in the art will recognize that such terms arealso used in a generic sense herein, and that embodiments of theinvention are not limited to such systems or models.

Those skilled in the art will recognize that the operations of thevarious embodiments may be implemented using hardware, software,firmware, or combinations thereof, as appropriate. For example, someprocesses can be carried out using processors or other digital circuitryunder the control of software, firmware, or hard-wired logic. (The term“logic” herein refers to fixed hardware, programmable logic and/or anappropriate combination thereof, as would be recognized by one skilledin the art to carry out the recited functions.) Software and firmwarecan be stored on computer-readable media. Some other processes can beimplemented using analog circuitry, as is well known to one of ordinaryskill in the art. Additionally, memory or other storage, as well ascommunication components, may be employed in embodiments of theinvention.

FIG. 7 illustrates a typical computing system 700 that may be employedto implement processing functionality in embodiments of the invention.Computing systems of this type may be used in the any one or more of thecontext server, main server, second server, map server, and usercomputer, for example. Those skilled in the relevant art will alsorecognize how to implement embodiments of the invention using othercomputer systems or architectures. Computing system 700 may represent,for example, a desktop, laptop or notebook computer, hand-held computingdevice (personal digital assistant (PDA), cell phone, palmtop, etc.),mainframe, server, client, or any other type of special or generalpurpose computing device as may be desirable or appropriate for a givenapplication or environment. Computing system 700 can include one or moreprocessors, such as a processor 704. Processor 704 can be implementedusing a general or special purpose processing engine such as, forexample, a microprocessor, microcontroller or other control logic. Inthis example, processor 704 is connected to a bus 702 or othercommunications medium.

Computing system 700 can also include a main memory 708, such as randomaccess memory (RAM) or other dynamic memory, for storing information andinstructions to be executed by processor 704. Main memory 708 also maybe used for storing temporary variables or other intermediateinformation during execution of instructions to be executed by processor704. Computing system 700 may likewise include a read only memory (ROM)or other static storage device coupled to bus 702 for storing staticinformation and instructions for processor 704.

The computing system 700 may also include information storage system710, which may include, for example, a media drive 712 and a removablestorage interface 720. The media drive 712 may include a drive or othermechanism to support fixed or removable storage media, such as a harddisk drive, a floppy disk drive, a magnetic tape drive, an optical diskdrive, a compact disk (CD) or digital versatile disk (DVD) drive (R orRW), or other removable or fixed media drive. Storage media 718, mayinclude, for example, a hard disk, floppy disk, magnetic tape, opticaldisk, CD or DVD, or other fixed or removable medium that is read by andwritten to by media drive 714. As these examples illustrate, the storagemedia 718 may include a computer-readable storage medium having storedtherein particular computer software or data.

In alternative embodiments, information storage system 710 may includeother similar components for allowing computer programs or otherinstructions or data to be loaded into computing system 700. Suchcomponents may include, for example, a removable storage unit 722 and aninterface 720, such as a program cartridge and cartridge interface, aremovable memory (for example, a flash memory or other removable memorymodule) and memory slot, and other removable storage units 722 andinterfaces 720 that allow software and data to be transferred from theremovable storage unit 718 to computing system 700.

Computing system 700 can also include a communications interface 724.Communications interface 724 can be used to allow software and data tobe transferred between computing system 700 and external devices.Examples of communications interface 724 can include a modem, a networkinterface (such as an Ethernet or other network interface card (NIC)), acommunications port (such as for example, a USB port), a PCMCIA slot andcard, etc. Software and data transferred via communications interface724 are in the form of signals which can be electronic, electromagnetic,optical or other signals capable of being received by communicationsinterface 724. These signals are provided to communications interface724 via a channel 728. This channel 728 may carry signals and may beimplemented using a wireless medium, wire or cable, fiber optics, orother communications medium. Some examples of a channel include a phoneline, a cellular phone link, an RF link, a network interface, a local orwide area network, and other communications channels.

In this document, the terms “computer program product,”“computer-readable medium” and the like may be used generally to referto media such as, for example, memory 708, storage device 718, orstorage unit 722. These and other forms of computer-readable media maystore one or more instructions for use by processor 704, to cause theprocessor to perform specified operations. Such instructions, generallyreferred to as “computer program code” (which may be grouped in the formof computer programs or other groupings), when executed, enable thecomputing system 700 to perform functions of embodiments of theinvention. Note that the code may directly cause the processor toperform specified operations, be compiled to do so, and/or be combinedwith other software, hardware, and/or firmware elements (e.g., librariesfor performing standard functions) to do so.

In an embodiment where the elements are implemented using software, thesoftware may be stored in a computer-readable medium and loaded intocomputing system 700 using, for example, removable storage drive 714,drive 712 or communications interface 724. The control logic (in thisexample, software instructions or computer program code), when executedby the processor 704, causes the processor 704 to perform the functionsof embodiments of the invention as described herein.

It will be appreciated that, for clarity purposes, the above descriptionhas described embodiments of the invention with reference to differentfunctional units and processors. However, it will be apparent that anysuitable distribution of functionality between different functionalunits, processors or domains may be used without detracting fromembodiments of the invention. For example, functionality illustrated tobe performed by separate processors or controllers may be performed bythe same processor or controller. Hence, references to specificfunctional units are only to be seen as references to suitable means forproviding the described functionality, rather than indicative of astrict logical or physical structure or organization.

Although embodiments of the invention have been described in connectionwith some embodiments, it is not intended to be limited to the specificform set forth herein. Rather, the scope of embodiments of the inventionis limited only by the claims. Additionally, although a feature mayappear to be described in connection with particular embodiments, oneskilled in the art would recognize that various features of thedescribed embodiments may be combined in accordance with embodiments ofthe invention.

Furthermore, although individually listed, a plurality of means,elements or method steps may be implemented by, for example, a singleunit or processor. Additionally, although individual features may beincluded in different claims, these may possibly be advantageouslycombined, and the inclusion in different claims does not imply that acombination of features is not feasible and/or advantageous. Also, theinclusion of a feature in one category of claims does not imply alimitation to this category, but rather the feature may be equallyapplicable to other claim categories, as appropriate.

1. An apparatus for visualizing location-based keywords according totheir relevance, comprising: visualization logic operable for applying avisualization scheme to one or more location-based keywords, the one ormore location-based keywords including keywords not intrinsically linkedto a particular geographical feature, the visualization schemegenerating presentation data in accordance with a relevance parameterassociated with the keyword.
 2. The apparatus of claim 1, thevisualization logic operable for receiving visualization data, thevisualization data including the one or more location-based keywords andthe relevance parameter and a location parameter associated with each ofthe keywords.
 3. The apparatus of claim 2, the visualization logicoperable for applying the visualization scheme to all of thelocation-based keywords in the visualization data. 4-9. (canceled) 10.The apparatus of claim 2, comprising rendering logic operable forintegrating the presentation data for each location-based keyword withmap data in accordance with the location parameter associated with thekeyword to enable the one or more keywords to be rendered along with themap data in accordance with their location and relevance. 11-12.(canceled)
 13. A main server comprising the apparatus of claim
 2. 14. Aserver system comprising the main server of claim 13, and comprising acontext server coupled to the main server for providing thevisualization data.
 15. A server system comprising the main server ofclaim 13, and comprising a map server coupled to the main server forproviding the map data.
 16. (canceled)
 17. A method for visualizinglocation-based keywords according to their relevance, comprising:altering an appearance of each of one or more location-based keywords inaccordance with a relevance parameter associated with the keyword, theone or more location-based keywords including one or more keywords notintrinsically linked to a geographical feature; and providing fordisplay to a user each location-based keyword on a map in accordancewith a location parameter associated with the keyword.
 18. The method ofclaim 17, comprising receiving visualization data, the visualizationdata including the one or more location-based keywords and the relevanceparameter and a location parameter associated with each of the keywords.19. The method of claim 18, comprising altering the appearance of all ofthe location-based keywords in the visualization data.
 20. The method ofclaim 18, the visualization data including a category parameterassociated with each keyword, the method comprising altering theappearance of only those location-based keywords in the visualizationdata having one or more particular category parameters.
 21. The methodof claim 18, comprising altering the appearance of only thoselocation-based keywords in the visualization data within a selected maparea.
 22. The method of claim 17, comprising altering the appearance ofthe keywords utilizing an appearance characteristic selected from thegroup consisting of font size, font style, color, shading,three-dimensional height, and animation.
 23. The method of claim 17,comprising altering the appearance of the keywords utilizing anappearance element selected from the group consisting of symbols, links,graphics, and thumbnails.
 24. The method of claim 17, comprisingaltering the appearance of the keywords in accordance with viewinglimitations selected from the group consisting of zoom level,screen-viewable area, type of screen, screen resolution, screen colors,and supported fonts.
 25. The method of claim 18, the visualization dataincluding a temporal parameter associated with each keyword, the methodcomprising displaying each location-based keyword on the map inaccordance with the location parameter associated with the keyword foronly those keywords in the visualization data having an associatedtemporal parameter falling within a particular range.
 26. The method ofclaim 18, comprising altering the appearance of each of one or morelocation-based keywords in accordance with a popularity parameterassociated with the keyword for only those location-based keywords inthe visualization data having an associated location parameter fallingwithin a geographic range defined by the map data.
 27. Acomputer-readable medium comprising program code for visualizinglocation-based keywords according to their relevance, the program codefor causing performance of a method comprising: altering an appearanceof each of one or more location-based keywords in accordance with arelevance parameter associated with the keyword, the one or morelocation-based keywords including one or more keywords not intrinsicallylinked to a geographical feature; and providing for display to a usereach location-based keyword on a map in accordance with a locationparameter associated with the keyword.
 28. The computer-readable mediumof claim 27, comprising program code for receiving visualization data,the visualization data including the one or more location-based keywordsand the relevance parameter and a location parameter associated witheach of the keywords.
 29. The computer-readable medium of claim 28,comprising program code for altering the appearance of all of thelocation-based keywords in the visualization data.
 30. (canceled) 31.The computer-readable medium of claim 28, comprising program code foraltering the appearance of only those location-based keywords in thevisualization data within a selected map area.
 32. The computer-readablemedium of claim 27, comprising program code for altering the appearanceof the keyword utilizing an appearance characteristic selected from thegroup consisting of font size, font style, color, shading,three-dimensional height, and animation.
 33. The computer-readablemedium of claim 27, comprising program code for altering the appearanceof the keyword utilizing an appearance element selected from the groupconsisting of symbols, links, graphics, and thumbnails.
 34. Thecomputer-readable medium of claim 27, comprising program code foraltering the appearance of the keywords in accordance with viewinglimitations selected from the group consisting of zoom level,screen-viewable area, type of screen, screen resolution, screen colors,and supported fonts.
 35. (canceled)
 36. The computer-readable medium ofclaim 28, comprising program code for altering the appearance of each ofone or more location-based keywords in accordance with a popularityparameter associated with the keyword for only those location-basedkeywords in the visualization data having an associated locationparameter falling within a geographic range defined by the map data.